<?php
class PlanoBSN extends GenericBSN {

	function __construct() {
		$this->dao = new PlanoDAO();		
	}

	public function consultar($vars) {
		$this->preencher($vars);
		$this->Records = $this->dao->consultar($this->where, $this->params, $this->order . $this->limit);
		$this->Result  = "OK";
	}
	
	public function consultarPK($vars) {
		$this->Records = $this->dao->consultarPK($vars['id']);
		$this->Result = "OK";
	}
	
	public function consultarCodigoDesc($vars) {
		$this->Records = $this->dao->consultarCodigoDesc($vars['plano'], (isset($vars["dc"])) ? $vars["dc"] : "");
		$this->Result = "OK";
	}
	
	public function consultarCodigoDescQuadra($vars) {
		$this->Records = $this->dao->consultarCodigoDescQuadra($vars['plano'], $vars['q_id']);
		$this->Result = "OK";
	}
	
	public function inserir($vars) {
		$registro['codigo']			= $vars['codigo'];
		$registro['descricao']		= $vars['descricao'];
		$registro['dc'] 			= $vars['dc'];
		
		try {
			$this->Record = $this->dao->inserir($registro);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar inserir: " . $e->getMessage();
		}
	}
	
	public function alterar($vars) {
		$registro['id'] 	 	 	= $vars['id'];
		$registro['codigo']			= $vars['codigo'];
		$registro['descricao']		= $vars['descricao'];
		$registro['dc'] 			= $vars['dc'];
				
		try {
			$this->Record = $this->dao->alterar($registro);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar alterar: " . $e->getMessage();
		}
	}
	
	public function excluir($registro) {
		try {
			$res = $this->dao->excluir($registro['id']);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar excluir: " . $e->getMessage();
		}
	}
	
	public function centroCustos($vars) {
		try {
			if (!isset($vars['dt_ini'])) {
				throw new Exception("Data inicial do período não informada!");
			}
			if (!isset($vars['dt_fim'])) {
				throw new Exception("Data final do período não informada!");
			}
			$this->Records = $this->dao->consultarCentroCustos($vars['dt_ini'], $vars['dt_fim']);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao gerar centro de custos: " . $e->getMessage();
		}
	}
	
}
?>